<?php
  //=========================<script réaliser par :MEZOUARI KHALID>===================
    require_once("beans/compteRenduBean.php");

 class compteRenduDao{
//==========================================
//--------------------------------Inserssion
//==========================================
//la fonction pour inserer les donnees du compte rendu dans la BD
     function insertCompteRendu($compteRendu)  {
           $param1=$compteRendu->getDesignation();    
           $param2=$compteRendu->getDescription();
           $param3=$compteRendu->getPiece();
           $param4=$compteRendu->getIdTacheRealisee();
           $param5=$compteRendu->getIdNomade();
          $req=connexion()->exec("Insert into compterendu1(designation,description,piece,idTacheRealisee,idNomade) values(\"$param1\",\"$param2\",\"$param3\",$param4,$param5)");
          
}
//============================================
//--------------------------------Modification
//============================================
  public function updateCompteRendu($compteRendu){
       $compteRenduDao=new compteRenduDao();
       $idCompteRendu=$compteRendu->getIdCompteRendu();
       $designation=$compteRendu->getDesignation();
       $description=$compteRendu->getDescription();
       $dateFin=$compteRendu->getDateFin();
       $idTacheRealisee=$compteRenduDao->loadIdTacheRealise($dateFin);
       echo "<br>requete:UPDATE compterendu1 SET idCompteRendu='$idCompteRendu', designation='$designation', description='$description' , idTacheRealisee='$idTacheRealisee' WHERE idCompteRendu='$idCompteRendu'";
       $req=connexion()->exec("UPDATE compterendu1 SET idCompteRendu='$idCompteRendu', designation='$designation', description='$description' , idTacheRealisee='$idTacheRealisee' WHERE idCompteRendu='$idCompteRendu'");

}
//==========================================
//-------------------------------Suppression
//==========================================
 public function  supprimerCompteRendu($compteRendu)  {
           $id_sup=$compteRendu->getIdCompteRendu();
           $requete_supression=connexion()->exec(" DELETE FROM compterendu1 where idCompteRendu=$id_sup");
  }  
//==========================================
//------------------------------------Select
//========================================== 
  public function loadUser($login) {//fct pour chercher un user
          $requete_prepare_1=connexion()->prepare("SELECT * FROM user WHERE login ='$login' "); // on prépare notre requête
          $requete_prepare_1->execute();
          while($lignes=$requete_prepare_1->fetch(PDO::FETCH_OBJ)){
                $user=$lignes;
          }
          return $user;//la fct retourn un objet user
}
public function loadAllDateTacheRealisee(){//ffct pour recuper tous les dates taches realisées
         $requete_prepare_3=connexion()->prepare("SELECT dateFin FROM tacherealisee"); // on prépare notre requête
         $requete_prepare_3->execute();
         $dateTache = array();             //on va recuperer les resulta sous forme de tableau
         while($lignes=$requete_prepare_3->fetch(PDO::FETCH_OBJ)){
              $dateTache[] =utf8_encode($lignes->dateFin);
        }
     return $dateTache;                  //la fonction retourn un tableau de dates des taches realisees
}
                                        //fonction pour importer tous les designations des taches
   public function loadAllDesignation(){
         $requete_prepare_4=connexion()->prepare("SELECT designation FROM tache"); // on prépare notre requête
         $requete_prepare_4->execute();
         $designationTache = array();//on va recuperer les resulta sous forme de tableau
         while($lignes=$requete_prepare_4->fetch(PDO::FETCH_OBJ)){
            $designationTache[] =utf8_encode($lignes->designation);
        }
     return $designationTache;//la fonction retourn un tableau de designations des taches 
}
                      //fonction pour importer l id de la tache appartir de la date de la tache
     function loadIdTacheRealise($date) {
         $requete_prepare_2=connexion()->prepare("SELECT idTacheRealisee FROM tacheRealisee WHERE dateFin ='$date' "); // on prépare notre requête
         $requete_prepare_2->execute();
         while($lignes=$requete_prepare_2->fetch(PDO::FETCH_OBJ)) {
            $id=$lignes->idTacheRealisee;
         }
     return $id; //la fonction retourne l'id de la tache realise
}
              
     public function loadDateFinTache($compteRendu){//fct pour chercher la date de fin d une tache
        $idTacheRealisee=$compteRendu->getIdTacheRealisee();
       $requete=connexion()->prepare("SELECT dateFin FROM tacherealisee where idTacheRealisee=$idTacheRealisee "); // on prépare notre requête
         $requete->execute();
         $dateFin="";
         while($lignes=$requete->fetch(PDO::FETCH_OBJ)) { 
          $dateFin=$lignes->dateFin;
}
      return $dateFin;//la fonction retourn la date fin
}

    public  function loadAllComptesRendu($nomade){//fct pour chercher tous les comptes d'un nomade donnée
        $idNomade=$nomade->getIdNomade();
         $requete_prepares=connexion()->prepare("SELECT * FROM compterendu1 c,tacherealisee t where c.idTacheRealisee=t.idTacheRealisee and idNomade=$idNomade "); // on prépare notre requête
         $requete_prepares->execute();
        $listeComptesRendus= array();
         while($lignes=$requete_prepares->fetch(PDO::FETCH_OBJ)) {
          $compteRendu=new compteRenduBean();//pour chaque ligne on va instancier un bean
          $compteRenduDao=new compteRenduDao();
          $compteRendu->setIdCompteRendu(utf8_encode($lignes->idCompteRendu)); 
          $compteRendu->setDesignation(utf8_encode($lignes->designation));
          $compteRendu->setDescription(utf8_encode($lignes->description));
          $piece=str_replace("../mobile/Projet/","",$lignes->piece);
          $compteRendu->setPiece(utf8_encode($piece));
          $compteRendu->setIdTacheRealisee(utf8_encode($lignes->idTacheRealisee));
          $compteRendu->setDateFin(utf8_encode($lignes->dateFin));
          $listeComptesRendus[] =$compteRendu;
         }
     return $listeComptesRendus; //fct retourn la liste des comptes d'un nomade
   }
       public function searchCompteRendus($compteRendu,$nomade){//fct pour chercher les comptes rendus d'un nomade par designation
         $designation=$compteRendu->getDesignation();
         $idNomade=$nomade->getIdNomade();
         $requete_search=connexion()->prepare("SELECT * FROM compterendu1 c,tacherealisee t where c.designation='$designation' and c.idTacheRealisee=t.idTacheRealisee and idNomade=$idNomade "); // on prépare notre requête
         $requete_search->execute();
         $listeComptesRendus= array();
          while($lignes=$requete_search->fetch(PDO::FETCH_OBJ)) {
               $compteRendu=new compteRenduBean();//pour chaque ligne on va instancier un bean
               $compteRenduDao=new compteRenduDao();
               $compteRendu->setIdCompteRendu(utf8_encode($lignes->idCompteRendu)); 
               $compteRendu->setDesignation(utf8_encode($lignes->designation));
               $compteRendu->setDescription(utf8_encode($lignes->description));
               $piece=str_replace("../mobile/Projet/","",$lignes->piece);
               $compteRendu->setPiece(utf8_encode($piece));
               $compteRendu->setIdTacheRealisee(utf8_encode($lignes->idTacheRealisee));
               $compteRendu->setDateFin(utf8_encode($lignes->dateFin));
               $listeComptesRendus[] =$compteRendu;
         }
     return $listeComptesRendus;//fct retourn la liste des comptes rendus  
   }
   public function searchCompteRendu($compteRendu,$nomade){//rechercher un seul compte rendu d'un nomade donnée
         $idCompteRendu=$compteRendu->getIdCompteRendu();
         $idNomade=$nomade->getIdNomade();
         $requete_search=connexion()->prepare("SELECT * FROM compterendu1 c,tacherealisee t where c.idCompteRendu='$idCompteRendu' and c.idTacheRealisee=t.idTacheRealisee and idNomade=$idNomade "); // on prépare notre requête
         $requete_search->execute();
         $compteRenduFind=new compteRenduBean();
         $compteRenduDao=new compteRenduDao();
         while($lignes=$requete_search->fetch(PDO::FETCH_OBJ)) {
               $compteRenduFind->setIdCompteRendu(utf8_encode($lignes->idCompteRendu)); 
               $compteRenduFind->setDesignation(utf8_encode($lignes->designation));
               $compteRenduFind->setDescription(utf8_encode($lignes->description));
               $piece=str_replace("../mobile/Projet/","",$lignes->piece);
               $compteRenduFind->setPiece(utf8_encode($piece));
               $compteRenduFind->setIdTacheRealisee(utf8_encode($lignes->idTacheRealisee));
               $compteRenduFind->setDateFin(utf8_encode($lignes->dateFin));
         }
         return $compteRenduFind;   //fct retun un seul compterendu
   }
   //methode utiliser dans la partie administration pour remlir le dataTable
   public  function loadAllComptesRendus(){
         $requete_prepares=connexion()->prepare("SELECT * FROM compterendu1 "); // on prépare notre requête
         $requete_prepares->execute();
         $listeComptesRendus= array(); 
         $compteRendu=new compteRenduBean();
         $compteRenduDao=new compteRenduDao();
         while($lignes=$requete_prepares->fetch(PDO::FETCH_OBJ)) {
              
               $compteRendu->setIdCompteRendu(utf8_encode($lignes->idCompteRendu)); 
               $compteRendu->setDesignation(utf8_encode($lignes->designation));
               $compteRendu->setDescription(utf8_encode($lignes->description));
               $compteRendu->setPiece(utf8_encode($lignes->piece));
               $compteRendu->setIdTacheRealisee(utf8_encode($lignes->idTacheRealisee));
               $datef=$compteRenduDao->loadDateFinTache($compteRendu);
               $compteRendu->setDateFin(utf8_encode($datef));
               $compteRendu->setIdNomade(utf8_encode($lignes->idNomade));
               $compteRendu->setEtat(0);
               $listeComptesRendus[] =$compteRendu;
         }
         return $listeComptesRendus; 
   }
   
   //pour l impression d'un seul compteRendu a la fois 
   public  function loadCompteRenduById($idCompteRendu){
         $requete_prepares=connexion()->prepare("SELECT * FROM compterendu1 where idCompteRendu=$idCompteRendu "); // on prépare notre requête
         $requete_prepares->execute(); 
         $compteRendu=new compteRenduBean();
         $compteRenduDao=new compteRenduDao();
         while($lignes=$requete_prepares->fetch(PDO::FETCH_OBJ)) {
              
               $compteRendu->setIdCompteRendu(utf8_encode($lignes->idCompteRendu)); 
               $compteRendu->setDesignation(utf8_encode($lignes->designation));
               $compteRendu->setDescription(utf8_encode($lignes->description));
               $compteRendu->setPiece(utf8_encode($lignes->piece));
               $compteRendu->setIdTacheRealisee(utf8_encode($lignes->idTacheRealisee));
               $datef=$compteRenduDao->loadDateFinTache($compteRendu);
               $compteRendu->setDateFin(utf8_encode($datef));
               $compteRendu->setIdNomade(utf8_encode($lignes->idNomade));
         }
         return $compteRendu; 
   }
}
?>



